설명: C:\Users\ajou\Desktop\아주대학교\University Logo\EI-b1-1.jpg

CSE 401
Capstone Design Project (
종합설계프로젝트)

Fall 2012

Division of Information and Computer Engineering
Ajou University

Last Update: August 24th 2012
 


Pre-requisite (Catalog Description):
Consent of the Department & Instructor
CSE 300 (Software Analysis and Design)

Topics include (Catalog Description):
Introduction to the techniques involved in the planning and implementation of large software systems. Emphasis on human interface aspects of systems. Planning software projects; software design process; top-down design; modular and structured design; management of software projects; testing of software; software documentation; choosing a language for software system.

Course Objectives/Overview

- This course targets to achieve the comprehensive evaluation of the integrated knowledge that were educated in the low-level software engineering courses such as software design, architecture, development, verification and validation.
- This course prepares students to play a key role in software industry by learning and practicing the entire software development process that includes: problem understanding and definition, requirements engineering, software design and analysis, development and testing.
- This course prepares students to work with team by working on a collaborative team-based project. Also, students learn about the ethics towards a professional engineer. ACM's own "Software Engineering Code of Ethics and Professional Practice" (version 5.2 http://www.acm.org/about/se-code) in Software Engineering is Engineering
- This course encourages students to actively engage in to a creative problem solving sessions during the entire software engineering process.
- This course challenges students to produce high-quality product to be able to participate in their graduation project or national or international level software competition (i.e. Microsoft Imagine cup).
 

What you can expect to achieve from this course - You are capable to:

- understand and explain the fundamental concepts of math, science, information and computer engineering knowledge that were applied to your team project.
- work with the (potential) clients by perceiving and understanding their needs and requirements (functional or non-functional) for the software system in their business production.
- clearly define the constraints given in the complex real-world business environment (in relation to your development environment) and make appropriate decisions in designing components and units that meet the requirements from the clients.
- clearly express the behavior of the software system by understanding the behind design principles.
- assure that there's no critical errors through the proper verification and validation techniques in testing.
- actively collaborate with the team members by faithfully performing your roles.
- document the necessary documents that are required for the project by using various techniques (writing skills, figures, tables, and other specific design and modeling components etc.)
- present your project that includes problems, motivation, solution approaches, arguments, justifications, evidences etc.
- answer questions from the audiences in a scientific and professional way.
- understand and analyze thoroughly the impact of your project to the community and the environment where your project can be potentially deployed and used.
- clearly identify and explain your contributions to the team-project and others work if any were referred and being adopted (with proper acknowledgements)
- collect, organize, and summarize the business domain information and knowledge that are related to your project. 

Instructor:
Prof. Seok-Won Lee, Ph.D. 
Associate Professor/ Dept. of Software Convergence Technology
Tel: 031-219-3548 (office)
Email: leesw @ ajou. ac. kr  (add '
CSE401' in the subject) 
Office: Pal-Dal-Kwan, Room 603
Office Hours:
Mondays/Wednesdays 10:30 – 11:30 AM, 1 – 3 PM or by Appointment  

How the lab hours will be used? vs. Classroom lectures
Mostly lab hours will be used to learn hands-on practical concepts and practice with tools with TAs and the instructor. Team members are expected to meet and work during the lab hours on various things such as (but not limited to): meeting log, software version control and debugging tools, IDE study, brain-storming sessions, designing and architecting the project ideas, development of the project, presentations, documentation and demonstration etc.

The classroom lectures will be more focused on the principles behind the software engineering lifecycle with serious discussions on "how to apply those principles to solve the real-world problems?" Students will learn: 1) the "state-of-the-art" techniques that are currently being used by the professionals in the world; 2) how to consider and incorporate the constraints that exist in real-world into the project; 3) how to prepare and write professional documents of Statement of Work, Requirements, Design and Analysis, Testing etc.and other technical documents (in English and Korean); 4) how to understand the "risks" in the project and find ways to "mitigate" those unexpected risks during the project; 5) ethics and responsibilities as future professionals; and 6) how to monitor the project progress towards the successful final project delivery.  A couple of professionals (from outside) will be invited to give invited talks to share their experiences and ideas.  

Class TA
Mr(s).
Tel:
Email:

Office: Pal-Dal-Kwan
913-1  
Office Hours:
9AM - 6PM

International TAs: Sania Yaqoob (sania.yaqoob86@gmail.com), Muhammad Attique (attiq85@gmail.com), Rajib Paul (ece.rajib@gmail.com) (International TAs will assist students in technical/ scientific writing & presentation, preparation of display, posters and demonstration)

Meeting Time & Location
Capstone Project Building (
종합설계동) Room 108

Class Lab:   
Wednesdays  6 - 8 PM  

Note: eClass or emails will be used for students to access course materials.

Specific Course Objectives, Topics1 and Schedule2: (Ajou University Academic Calendar) 

1.      Software Process
- Software process models, process iteration, process activities 

2.      Software Requirements
- Functional, Non-functional requirements, User requirements, System requirements, Interface specification, and requirements document

3.      Software Analysis (see Software V&V)
- Software Analysis: A Roadmap, Daniel Jackson and Martin Rinard, A chapter in "The Future of Software Engineering", Editor Anthony Finkelstein, ACM Press, June 2000

4.      Software Design (including OO design patterns)
- UML
- Objects, object classes, OO design process, design evolution
- Aspect-oriented software development (AOSD)

5.      Critical Systems
- rapid software development, softare reuse, component-based SE, critical systems development, software evolution

6.      Software Quality
- Software quality, testing, Quality control, Configuration Management, Continuous process improvement, Roles of statistical methods

7.      Software verification, validation & testing
- Verifying software requirements (inspection and walkthrough, checklists, requirements traceability matrix, building acceptance test plan)
- Verifying logical designs (linkage between data model and process models, technical reviews)
- Unit testing, Integration testing, system testing, acceptance testing
- Testing techniques and strategies

8.      Projects
- Project management
- Management activities, project planning, scheduling, & risk management

*** Check the course topics, dues and notes in the table below AND course materials available in the eClass BEFORE come to the class.

 

Date

Course Topics (Tentative1)

Due

Misc. Note

1

Week 1

8/27

8/29

Course Overview

   

 

2

Week 2

9/3

9/5

Course Overview / Software Requirements & Process

 

 

3

Week 3

9/10

9/12

 Project Overview


Project Infrastructure Overview

Software Process &  Object-oriented Design

 

 

   Team Building Week

4

Week 4

9/17

9/19

Student Presentation  

 

Software Design:

UML Diagram, Use Case Diagram, Activity Diagram

Project Proposal Due (9/17)

Project Proposal Feedback/Approval
(9/19)

 

5

Week 5

9/24

9/26

Software Process &  Object-oriented Design
 
 Software Design Pattern

 

  Mini Project - core technology development period

6

Week 6

10/1

10/3

10/1 - No class 

 

10/3 - Student Presentation (Core technology & demo)

Object-oriented Design


Demo  period

7

Week 7

10/8

10/10

Architectural Design, Socio-technical Systems

Presentation "How to prepare technical presentation"

Presentation "How to prepare scientific writing/technical documentation"

 Full Proposal Due (10/8)

 

8

Week 8

10/15

10/17

Midterm period  

Critical Systems
Critical Systems Specification

 

 

9

Week 9

10/22

10/24

 

Midterm Review

Requirements Doc due (10/22)

10

Week 10

10/29

10/31

Presentation "How to prepare technical demonstration, poster, display"

 

 

 

 

11

Week 11

11/5

11/7

Software Verification, Validation & Testing

Secure Software Assurance: Software C&A
 

Design/Analysis Doc Due (11/5) 

 

12

Week 12

11/12

11/14

Ontology based object-oriented domain modeling: fundamental concepts

Critical Systems Validation

 

 

13

Week 13

11/19

11/21

 Software Quality Assurance

Quality Management, Process Improvement & Configuration Management

 

Testing Doc Due (11/19)

 

14

Week 14

11/26

11/28


Project Management


 

Peer evaluation due

 

15

Week 15

12/3

12/5

Project Group Demonstrations & Presentations
 

Final Project Report  due  (12/3)

Even number teams

Individual Group Demo

16

Week 16
12/10

12/12

 Final exam period

Project Group Demonstrations & Presentations

 Odd number teams

In class, closed book

Individual Group Demo

1Additional topics will be introduced as time allows. 2Schedules may be changed. 

Microsoft Imagine Cup Competition
We may plan to participate in the Microsoft Imagine Cup Competition? Read more about this here.

Important Dates:
Midterm:            10/15 - 10/17
Final exam:        12/10 - 12/12 (Comprehensive exam, but more focused on the second part)

Due dates for the Homework/Project will be announced in the class.

Text Book/ Recommend Readings:
-- Code Element (2nd Edition), by Steve McConnell, Microsoft Press, 2004
-- The Elements of Style, W. Strunk Jr. and EB White, Allyn and Bacon, 2000
-- Why Programs Fail,  Andreas Zeller, Morgan Kaufmann, 2006
-- Essentials of Software Engineering, Frank Tsui and Orlando Karam, Jones and Barlett, 2007

-- Sommerville, I. "Software Engineering", 8th edition, Addison Wesley, 2007. (related web site: You can retrieve the slides from here.)
-- Gerald Kotonya, Ian Sommerville, Requirements Engineering: Processes and Techniques, ISBN: 0-471-97208-8, August 1998, John Wiley & Sons. (it can be fully accessed online through the UNCC E-Learning site (http://www.labs.uncc.edu/basics/etraining.htm). Log in and go to the Books24x7 section to access it.
-- Martin Fowler UML Distilled: A brief guide to the standard object modeling language, Third Edition, Addison-Wesley. 2003. ISBN: 0-321-19368-7
-- AspectJ in Action: Practical Aspect-Oriented Programming, Ramnivas Laddad, July 2003, Softbound, 512 pages, ISBN 1930110936, Manning Publications Co. (This book has two options: Softcopy & E-Book). Ebook can be found at: http://www.manning.com/laddad.


Online Resources (The list will grow - Welcome to Contribute if you have any to share with others! ):
Requirements Engineering
Requirements Engineering Journal, Springer-Verlag
Requirements Engineering books reviews by I. Alexander
Requirements Engineering Specialist Group in UK
IFIP Working Group 2.9 on Requirements Engineering
INCOSE Requirements Engineering Group
Requirements Engineering resources from the IEEE Task Force on RE
RE On-line mailing list Software Testing and Quality Assurance Online Forums 

UML (Unified Modeling Language)
UML Tutorial
UML On-line Course
UML Help

 

Software Patterns
Patterns Home
The Design Patterns - by James Cooper

Software Quality Assurance and Testing
Software Testing Resources and Tools
Software QA and Testing Resource Center
Free Software Quality Assurance and Testing Training and Tutorials

Aspect-oriented Software Development (AOSD) /Programming (AOP)
Early Aspects: Aspected-oriented Requirements Engineering & Architectural Design (AOSD '02, OOPSLA '04)
Aspect-oriented Software Development & Community - The aosd.net site is intended to be a comprehensive source of information of information for Aspect-Oriented Software Development, and supports mailing lists related to AOSD.
Xerox-Parc research on AOP - The AspectJ project at Eclipse.org - AspectJ is a seamless aspect-oriented extension to Java that enables the modular implementation of a wide range of crosscutting concerns,  Software Design Area at Xerox-Parc - The goal of the Software Design Area at Xerox PARC is simple and long-standing: to make it possible to cleanly capture complex design structures in software implementations.

Grading Policies: (Composition of the grading percentage may be changed)
Grading will be based on a curve

Breakdown (tentative)
Midterm: 25%  
Final: 30%  
Individual Homework & Quizzes: 10%
Group Project: 35%  (Proposal & Plan / Requirements Specification / Design Specification / Final Report / Project Presentation / Project Demonstration)

 Individual assignments, quizzes, and exams must demonstrate an understanding of the material in order to receive higher than a C in this course.  If no individual assignments or quizzes are assigned, then that portion of a student’s grade will be distributed across the midterm, final and project in a manner to be determined.


Special Notes:

  1. Academic dishonesty, in any form, will not be tolerated. Cheating, copying parts or whole papers/programs, or complicity in any violations of the student academic integrity code will result in prompt action on my part in accordance with the procedures outlined in the Ajou University Code of Student Academic Integrity. See a more detailed statement at the end of this syllabus.
  2. You are responsible for class absencesAttendance is mandatory for all class meetings. Three to four unexcused absences results in the loss of a letter grade; more than four unexcused absences will result in the automatic failure of the course.
  3. Please let instructor know the need, when feasible, to flexibly accommodate student observances of the holy days of all religious denominations.  
  4. Late policy: Any assignments should be submitted BEFORE the class on the due dates. In case of late submission due to unavoidable circumstances, students should obtain permission from the instructor ahead of the deadline. Late submissions will result in a 10% penalty per day. 
  5. No early or make-up exams. No exceptions.
  6. Class participation: Students are encouraged to ask questions in class. The questions should be relevant to the course topics. Also initiating or engaging discussions in class or online discussion board in eClass that help further understanding of course materials or topics are all welcome and encouraged.  All cases will be used in the evaluation.
  7. In the event of inclement weather, call University for information about for closings or delays.
  8. Inappropriate conduct will result in your being dismissed from class; that class will count as an unexcused absence; that misconduct will be reported to the department. Inappropriate conduct includes, but is not limited to, disrespectful or vulgar language, disruptive conduct (such as talking during a lecture, unnecessary comments that add no value to the class), sleeping in class, and any activities that negatively impacts the ability of other students to learn and/or listen in class. If you exhibit this behavior, you will be asked to leave the class, and that class will count as an unexcused absence. Repeated inappropriate behavior may result in a student’s being dismissed from the course, with a potential reduction in grade, including a potential grade of “F” in the course. All electronic equipment, including cellular phones and beepers, must be turned OFF during class. A student whose phone or beeper goes off in class will be banished from class for the remaining class time, and that class will count as an unexcused absence.

Academic Integrity:

Students have the responsibility to know and observe the requirements of Ajou University Code of Student Academic Integrity. This code forbids cheating, fabrication, or falsification of information, multiple submission of academic work, plagiarism, abuse of academic materials, and complicity in academic dishonesty. There are no special requirements regarding academic integrity in this course. The code will be strictly enforced and is binding on the students. Grade and academic evaluations in this course include a judgment that the student's work is free from academic dishonesty of any type; and grades in this course therefore should be and will be adversely affected by academic dishonesty. Students who violate the code can be expelled from Ajou University. The normal penalty for a first offense is zero credit on the work involving dishonesty and further substantial reduction of the course grade. In almost all cases the course grade is reduced to an F. Copies of the Code can be obtained from the Dean of Students Office or me. Standards of academic integrity will be enforced in this course. Students are expected to report cases of academic dishonesty to me immediately.